package com.kakame.codenews.base.web.fast.mapping.nexus;

import java.io.Serializable;
import com.kakame.codenews.base.web.annotation.TableMapping;
import com.kakame.codenews.base.web.annotation.ColumnMapping;

/**
 * 评论与评论之间的关联关系（Closure Table）
 * @author 何家明  2018年08月02日 13:21:15
 */
@TableMapping("t_nexus_comment_comment")
public class CommentComment implements Serializable {

    private static final long serialVersionUID = 1L;

    @ColumnMapping(column = "id")
    private String id;

    @ColumnMapping(column = "comment_parent_id")
    private String commentParentId;

    @ColumnMapping(column = "comment_id")
    private String commentId;

    @ColumnMapping(column = "distance")
    private Integer distance;

    @ColumnMapping(column = "status")
    private String status;


    public CommentComment() {
    }
    public CommentComment(Builder builder) {
        this.id = builder.id;
        this.commentParentId = builder.commentParentId;
        this.commentId = builder.commentId;
        this.distance = builder.distance;
        this.status = builder.status;
    }
	public static Builder create() {
		return new Builder();
	}

	/**
	 * 
	 * @author 何家明  2018年08月02日 13:21:15
	 * @return
	 */
    public String getId() {
		return id;
	}
    /**
	 * 
	 * @author 何家明  2018年08月02日 13:21:15
	 * @param id
	 */
    public void setId(String id) {
		this.id = id;
	}
	/**
	 * 父级评论id
	 * @author 何家明  2018年08月02日 13:21:15
	 * @return
	 */
    public String getCommentParentId() {
		return commentParentId;
	}
    /**
	 * 父级评论id
	 * @author 何家明  2018年08月02日 13:21:15
	 * @param commentParentId
	 */
    public void setCommentParentId(String commentParentId) {
		this.commentParentId = commentParentId;
	}
	/**
	 * 评论id
	 * @author 何家明  2018年08月02日 13:21:15
	 * @return
	 */
    public String getCommentId() {
		return commentId;
	}
    /**
	 * 评论id
	 * @author 何家明  2018年08月02日 13:21:15
	 * @param commentId
	 */
    public void setCommentId(String commentId) {
		this.commentId = commentId;
	}
	/**
	 * 祖先节点到其本身之间的深度
	 * @author 何家明  2018年08月02日 13:21:15
	 * @return
	 */
    public Integer getDistance() {
		return distance;
	}
    /**
	 * 祖先节点到其本身之间的深度
	 * @author 何家明  2018年08月02日 13:21:15
	 * @param distance
	 */
    public void setDistance(Integer distance) {
		this.distance = distance;
	}
	/**
	 * 数据状态 C 正常 D 删除
	 * @author 何家明  2018年08月02日 13:21:15
	 * @return
	 */
    public String getStatus() {
		return status;
	}
    /**
	 * 数据状态 C 正常 D 删除
	 * @author 何家明  2018年08月02日 13:21:15
	 * @param status
	 */
    public void setStatus(String status) {
		this.status = status;
	}

    @Override
	public String toString() {
		return "CommentComment [id=" + id + ", commentParentId=" + commentParentId + ", commentId=" + commentId + ", distance=" + distance + ", status=" + status + "]";
	}
    public static class Builder {
        private String id;
        private String commentParentId;
        private String commentId;
        private Integer distance;
        private String status;
        /**
	     * 
	     * @author 何家明  2018年08月02日 13:21:15
	     * @param id
	     */
        public Builder id(String id) {
	    	this.id = id;
	        return this;
    	}
        /**
	     * 父级评论id
	     * @author 何家明  2018年08月02日 13:21:15
	     * @param commentParentId
	     */
        public Builder commentParentId(String commentParentId) {
	    	this.commentParentId = commentParentId;
	        return this;
    	}
        /**
	     * 评论id
	     * @author 何家明  2018年08月02日 13:21:15
	     * @param commentId
	     */
        public Builder commentId(String commentId) {
	    	this.commentId = commentId;
	        return this;
    	}
        /**
	     * 祖先节点到其本身之间的深度
	     * @author 何家明  2018年08月02日 13:21:15
	     * @param distance
	     */
        public Builder distance(Integer distance) {
	    	this.distance = distance;
	        return this;
    	}
        /**
	     * 数据状态 C 正常 D 删除
	     * @author 何家明  2018年08月02日 13:21:15
	     * @param status
	     */
        public Builder status(String status) {
	    	this.status = status;
	        return this;
    	}

        public CommentComment build() {
			return new CommentComment(this);
		}
	}



    // ******************* 扩展 *******************//
    private String createUserId;

    public String getCreateUserId() {
        return createUserId;
    }
    public void setCreateUserId(String createUserId) {
        this.createUserId = createUserId;
    }

}
